Method and System of Utilizing Unsupervised Learning to Improve Text to Content Suggestions

ABSTRACT

Method and system for training a text-to-content suggestion ML model include accessing a dataset containing unlabeled training data collected from an application, the unlabeled training data being collected under user privacy constraints, applying an ML model to the dataset to generate a pretrained embedding, and applying a supervised ML model to a labeled dataset to train the text-to-content suggestion ML model utilized by the application by utilizing the pretrained embedding generated by the supervised ML model.

BACKGROUND

Intelligent text-to-content suggestion services are used in a variety ofcomputer programs. For example, text-to-content suggestion services maybe used to suggest images, icons, or emoticons based on text received asan input in an application. In general, such applications may need to becompliant with certain privacy and data regulations. As a result, theapplications may not be able to store and utilize users' data asentered. Instead, they may utilize mechanisms such as masking certainwords and not keeping the original sentence order of input text toensure privacy. This makes it difficult to correctly maketext-to-content suggestions.

Furthermore, new content is often provided to applications that offertext-to-content suggestions. Because the process of labeling new contentis often time consuming and expensive, some of the new content may beunlabeled. In general, the more labeled data a model includes, thebetter the quality of suggestions provided by the process. For example,when new unlabeled content is added to text-to-content service, thechance of the new data being provided as suggestions is lower than withthe old data. This could mean that even though new content is added to aservice, the users may not be presented with the new content for a longtime.

Hence, there is a need for improved systems and methods of intelligentlytraining text-to-content suggestion models.

SUMMARY

In one general aspect, this disclosure presents a device having aprocessor and a memory in communication with the processor wherein thememory stores executable instructions that, when executed by theprocessor, cause the device to perform multiple functions. The functionmay include accessing a dataset containing unlabeled training datacollected from an application, the unlabeled training data beingcollected under user privacy constraints, applying an unsupervisedmachine-learning (ML) model to the dataset to generate a pretrainedembedding, and applying a supervised ML model to a labeled dataset totrain a text-to-content suggestion ML model utilized by the application.The supervised ML model may utilize the pretrained embedding generatedby the supervised ML model to train the text-to-content suggestion MLmodel.

In yet another general aspect, the instant application describes amethod for training a text-to-content suggestion ML model. The methodmay include accessing a dataset containing unlabeled training datacollected from an application, the unlabeled training data beingcollected under user privacy constraints, applying an unsupervisedmachine-learning (ML) model to the dataset to generate a pretrainedembedding, and applying a supervised ML model to a labeled dataset totrain a text-to-content suggestion ML model utilized by the application.The supervised ML model may utilize the pretrained embedding generatedby the supervised ML model to train the text-to-content suggestion MLmode.

In a further general aspect, the instant application describes anon-transitory computer readable medium on which are stored instructionsthat when executed cause a programmable device to access a datasetcontaining unlabeled training data collected from an application, theunlabeled training data being collected under user privacy constraints,apply an unsupervised machine-learning (ML) model to the dataset togenerate a pretrained embedding, and apply a supervised ML model to alabeled dataset to train a text-to-content suggestion ML model utilizedby the application. The supervised ML model may utilize the pretrainedembedding generated by the supervised ML model to train thetext-to-content suggestion ML model.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawing figures depict one or more implementations in accord withthe present teachings, by way of example only, not by way of limitation.In the figures, like reference numerals refer to the same or similarelements. Furthermore, it should be understood that the drawings are notnecessarily to scale.

FIG. 1 depicts an example system upon which aspects of this disclosuremay be implemented.

FIG. 2 depicts a simplified example system for providing contentsuggestions in an application.

FIG. 3 is an example model architecture for a text-to-content model.

FIG. 4 is an example model architecture for an unsupervised learningmodel for pretraining embeddings used in the model architecture of FIG.3.

FIG. 5 is a flow diagram depicting an example method for providing anunsupervised learning model to predict masked words in an unordereddataset and to pretraining an embeddings layer.

FIG. 6 is a flow diagram depicting an example method training atext-to-content suggestion model based.

FIG. 7 is a block diagram illustrating an example software architecture,various portions of which may be used in conjunction with varioushardware architectures herein described.

FIG. 8 is a block diagram illustrating components of an example machineconfigured to read instructions from a machine-readable medium andperform any of the features described herein.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth by way of examples in order to provide a thorough understanding ofthe relevant teachings. It will be apparent to persons of ordinaryskill, upon reading this description, that various aspects can bepracticed without such details. In other instances, well known methods,procedures, components, and/or circuitry have been described at arelatively high-level, without detail, in order to avoid unnecessarilyobscuring aspects of the present teachings.

A number of applications commonly employed by a typical computer usermay include content in addition to text that may be used to enter datain the application. New content is often being added to theseapplications and each may include a significant number of differentcontent such as images, icons, emoticons, and the like. As a result, itis often difficult and time consuming for users to look through numerouscontent to find those that relate to the document the user is workingon. Because of this, users may often forgo including such content intheir documents. However, the additional content may play an importantrole in document creation. For example, a presentation that includescontent such as icons and images may convey the message more clearly andmay be more attractive and presentable.

Text-to-content services may provide an easy way for users to choosecontent (e.g., images, icons, emoticon, or keywords) that correspond tothe entered text by presenting a list of suggestions to the user basedon the user's input text. However, training models to correctly providetext-to-content suggestions may often be difficult because the trainingset may be partially filtered to ensure the user's privacy. Furthermore,during training data collection, in each slide in a presentation, onlyunigrams (e.g., words) within a fixed vocabulary maybe logged. Stillfurther, words in a sentence may be shuffled to ensure the original textcannot be recovered. However, most currently used text analysisalgorithms are based on ordered sentences and data that includes thecorrect text sequence. These algorithms may not work without a correcttext sequence.

To make matters more complex, new content (e.g., icons, images, oremoticons) may be introduced frequently in a given application. When newcontent is provided, text-to-content models used in the service may needto be retrained to ensure the content is included in the suggestions.However, because the new content is often not sufficiently labeled,while the old content is labeled, training the text-to-content models onthis unbalanced dataset with a traditional approach can lead to a modelthat rarely predicts new content.

A text-to-content service often hosts several models that each suggestcertain type of content based on user's text input, such astext-to-image, text-to-icon, and text-to-emoticon. Traditionally, eachof these models utilize their own approach to train the model. Forexample, some use the fastText classifier, while others use a tree-basedmodel, or a combination of models. The models may use a known pretrainedword embedding to transfer the input text to embedding, and thenoptimize the model using their own labeled data through iterations. Thisapproach is not scalable when new content is often added for each model.Furthermore, the individual models may face an imbalanced data problem,as some models may have a significant amount of labeled data, whereassome others do not. In general, the more labeled data is available, thebetter quality of suggestions presented. As a result, having unbalancedlabeled data may lead to imbalanced content suggestions. For instance,the text-to-image model may have the best quality because it may haveabundant labeled data. The text-to-icon model, on the other hand, is maynot be able to provide good quality suggestions due to limited labeleddata.

To address these issues and more, in an example, this descriptionprovides techniques used for intelligently suggesting content based oninput text by utilizing a deep neural network model. In an example, thedeep neural network may include a first layer that is an average poolinglayer and a second layer that is a fully connected layer. This deepneural network model may be trained using supervised training byutilizing a dataset that includes the new content and the old content.However, to ensure that suggestion accuracy is increased, the model maybe pretrained via an unsupervised pretraining mechanism that uses largescale unlabeled data. The large-scale unlabeled data may includeapplication domain specific data received via the application andexternal data. The domain specific data may mask certain words andinclude unordered sentences. The unsupervised pretraining mechanism maybe used to predict the mask words and pretrain the first and secondlayers of the deep neural network model before the deep neural networkmodel is trained for suggesting content. The unsupervised learningtechnique may be used to generate several sets of domain-specificpretrained word embeddings (e.g., size 100, 300, 500, 1000, and thelike) for the text-to-content service. These word embeddings mayincorporate the domain-specific knowledge of all the user texts in theservice. Then each text-to-content task may choose the right set ofdomain-specific pretrained word embedding based on its available labeleddata, target accuracy, and resource constraints. As a result, thesolution provides an improved method of training text-to-content modelsto increase accuracy and efficiency.

As will be understood by persons of skill in the art upon reading thisdisclosure, benefits and advantages provided by such implementations caninclude, but are not limited to, a solution to the technical problems ofinefficient training and providing inaccurate and unbalancedtext-to-content suggestions. Technical solutions and implementationsprovided here optimize the process of training text-to-content models,increase accuracy in the content suggested and ensure that new contentis included in suggested content. The benefits provided by thesesolutions provide more user-friendly applications, increase accuracy andincrease system and user efficiency.

As a general matter, the methods and systems described herein mayinclude, or otherwise make use of, a machine-trained model to identifycontents related to a text. Machine learning (ML) generally involvesvarious algorithms that can automatically learn over time. Thefoundation of these algorithms is generally built on mathematics andstatistics that can be employed to predict events, classify entities,diagnose problems, and model function approximations. As an example, asystem can be trained using data generated by a ML model in order toidentify patterns in user activity, determine associations betweenvarious words and contents (e.g., icons, images, or emoticons) and/oridentify suggested contents that relate to a text entered by a givenuser. Such determination may be made following the accumulation, review,and/or analysis of user data from a large number of users over time,that may be configured to provide the ML algorithm (MLA) with an initialor ongoing training set. In addition, in some implementations, a userdevice can be configured to transmit data captured locally during use ofrelevant application(s) to the cloud or the local ML program and providesupplemental training data that can serve to fine-tune or increase theeffectiveness of the MLA. The supplemental data can also be used tofacilitate identification of contents and/or to increase the trainingset for future application versions or updates to the currentapplication.

In different implementations, a training system may be used thatincludes an initial ML model (which may be referred to as an “ML modeltrainer”) configured to generate a subsequent trained ML model fromtraining data obtained from a training data repository or fromdevice-generated data. The generation of this ML model may be referredto as “training” or “learning.” The training system may include and/orhave access to substantial computation resources for training, such as acloud, including many computer server systems adapted for machinelearning training. In some implementations, the ML model trainer isconfigured to automatically generate multiple different ML models fromthe same or similar training data for comparison. For example, differentunderlying ML algorithms may be trained, such as, but not limited to,decision trees, random decision forests, neural networks, deep learning(for example, convolutional neural networks), support vector machines,regression (for example, support vector regression, Bayesian linearregression, or Gaussian process regression). As another example, size orcomplexity of a model may be varied between different ML models, such asa maximum depth for decision trees, or a number and/or size of hiddenlayers in a convolutional neural network. As another example, differenttraining approaches may be used for training different ML models, suchas, but not limited to, selection of training, validation, and test setsof training data, ordering and/or weighting of training data items, ornumbers of training iterations. One or more of the resulting multipletrained ML models may be selected based on factors such as, but notlimited to, accuracy, computational efficiency, and/or power efficiency.In some implementations, a single trained ML model may be produced.

The training data may be continually updated, and one or more of themodels used by the system can be revised or regenerated to reflect theupdates to the training data. Over time, the training system (whetherstored remotely, locally, or both) can be configured to receive andaccumulate more and more training data items, thereby increasing theamount and variety of training data available for ML model training,resulting in increased accuracy, effectiveness, and robustness oftrained ML models.

FIG. 1 illustrates an example system 100, upon which aspects of thisdisclosure may be implemented. The system 100 may include a sever 110which may be connected to or include a data store 112 which may functionas a repository in which datasets relating to training models may bestored. The server 110 may operate as a shared resource server locatedat an enterprise accessible by various computer client devices such asclient device 130. The server may also operate as a cloud-based serverfor offering text-to-content services in one or more applications suchas applications 122.

The server 110 may include and/or execute a text-to-content service 114which may provide intelligent text-to-content suggestions for a group ofusers utilizing applications on their client devices such as clientdevice 130. The text-to-content service 114 may operate to examine dataentered by a user via an application (e.g., applications 122 orapplications 136), and suggest content corresponding to the entered databy utilizing various models. In an example, the text-to-content service114 may utilize a text-to-image model 116, a text-to-icon model 118, anda text-to-emoticon model 120 to suggestion corresponding content. Forexample, the text-to-image model may be used to find images thatcorrespond the user's data in an application. Similarly, thetext-to-icon model may be utilized to provide suggested icons thatcorrespond to the entered data, and the text-to-emoticon model may beused to find emoticons that relate to the entered data. Other models mayalso be used. For example, a text-to-content service may include atext-to-keyword model that suggests keywords that correspond to enteredtext.

Each of the models used as part of the text-to-content service may betrained by a training mechanism 124. The training mechanism 124 may usetraining datasets stored in the datastore 112 to provide and ongoinginitial training for each of the models 116, 118 and 120. In oneimplementation, the training mechanism 124 may use unlabeled trainingdata from the datastore 122 (e.g., stored user input data) to train eachof the models 116, 118 and 120, via deep neural networks models. Theinitial training may be performed in an offline stage.

The client device 130 may be connected to the server 110 via a network130. The network 110 may be a wired or wireless network(s) or acombination of wired and wireless networks that connect one or moreelements of the system 100. The client device 13 may be a personal orhandheld computing device having or being connected to input/outputelements that enable a user to interact with various applications (e.g.,applications 122 or applications 136). Examples of suitable clientdevices 130 include but are not limited to personal computers, desktopcomputers, laptop computers, mobile telephones; smart phones; tablets;phablets; smart watches; wearable computers; gaming devices/computers;televisions; and the like. The internal hardware structure of a clientdevice is discussed in greater detail in regard to FIGS. 7 and 8.

The client device 130 may include one or more applications 136. Eachapplication 136 may be a computer program executed on the client devicethat configures the device to be responsive to user input to allow auser to interactively enter data into applications 136. Examples ofsuitable applications include, but are not limited to, a word processingapplication, a presentation application, a note taking application, anda communications application.

In some examples, applications used to receive user input and providecontent suggestion in response may be executed on the server 110 (e.g.,applications 122) and be provided via an online service. In oneimplementation, web applications may communicate via the network 130with a user agent 132, such as a browser, executing on the client device130. The user agent 132 may provide a user interface that allows theuser to interact with applications 122 and may enable applications 122to provide user data to the datastore 112 to be stored as used astraining data. In other examples, applications used to receive userinput and provide content suggestions maybe local applications such asthe applications 136 that are stored and executed on the client device130 and provide a user interface that allows the user to interact withapplication. User data from applications 136 may also be provided viathe network 130 to the datastore 112 for use by the training mechanism124.

FIG. 2 illustrates a simplified example system 200 for providing contentsuggestions in an application. In one implementation, the applicationmay receive user input via a user interface 210. The entered input maybe a portion of text entered on a page (e.g., one slide of thepresentation or a page of a word document) of the application. The inputdata may comprise a single word or any practical number of words, fromwhich feature data may be extracted and input to the text to contentservice 114 which uses the trained models 116, 118 and 120 to providesuggested images, suggested icons, suggested emoticons and the like. Thetext to content service may be provided by a remote server.Alternatively, limited trained model may be available locally to theapplication to provide some suggested content, while offline, forexample.

The suggested icons may be processed by a frontdoor and backend unit 220which may handle the layout and prioritization of the suggested contentwhen it is presented to the user in a user interface element such asuser interface element 240. In one implementation, each of the trainedmodels 116, 118 and 120 may assign a score to each suggested content(e.g., each suggested icon) based on the input text and the top rankedsuggested content may be presented to the user. Thus, once a user entersa set of data in the application, highly related content may bepresented to the user for easy selection.

FIG. 3 depicts an example simplified architecture 300 for atext-to-content suggestion model. In one implementation, thetext-to-content suggestion model is a deep neural network having twolayers. In an example, the input of the text-to-content suggestion modelmay be a portion of text referred to as a query. As shown in FIG. 3, anexample query of the input dataset may include word 1 through word n. Aquery may be a set of words derived from a page of an application (e.g.,a slide in a presentation or a page of a word document) that provides atext-to-content service.

The query may be entered as input into the text-to-content model andused to derive an average pooling layer 310 of the sentence(s) fromwhich the query originated. This may be done by calculating a value forthe average of word embeddings in the query. Assuming a given query isdenoted by Q and represented as Q=(w₁, w₂, . . . , w_(n)), and the wordembedding matrix is denoted by W_(E), the average of word embeddings inQ may be denoted by q and calculated as follows:

$\begin{matrix}{q = {\frac{1}{n}{\sum\limits_{i}{W_{E}{e\left( w_{i} \right)}}}}} & (1)\end{matrix}$

In the above equation (1), w_(i) may denote the one hot encoding vector.As is known in the art, the one hot encoding vector may be used toperform binarization of the matrix to properly train a model.

The word embedding matrix W_(E) may be learned on the fly or may beinitialized with one or more known pretrained word embeddings. In oneimplementation, the word embedding matrix may be initialized withpretrained word embeddings such as Global Vectors for WordRepresentation (GloVe), Word2vec, or fastText. As is known in art, Gloveis an unsupervised learning algorithm for obtaining vectorrepresentations for words. Training in Gove may be performed onaggregated global word to word cooccurrence statistics from a corpus,and the resulting representations may showcase linear substructures ofthe word vector space. Word2vec refers to a group of related neuralnetwork models that are trained to reconstruct linguistic contexts ofwords. Similarly, fastText is a library of word embeddings created forobtaining vector representation of words. In an example, fastTextprovides a 300-dimension vector representation of words.

Once the average of word embeddings in Q is calculated, an averagepooling layer 310 for the sentence(s) from which the input text (e.g.query) originated may be generated. A fully connected layer 320 may thenbe developed for the query. As is known in the art, a fully connectedlayer in a neural network connects every neuron in one layer of themodel to every neuron in another layer. The size of the fully connectedlayer 320 may depend on the complexity of the task. In an example, thesize may vary from 500 to 1000. In one implementation, the fullyconnected layer 320 may have an activation function such as a rectifiedlinear unit (ReLU) activated upon it. This may be done by using thefollowing function:

h=max(0,Wq+b)  (2)

In equation (2), h may denote the hidden layer output and b may denotethe bias in the hidden layer. Additionally, a dropout procedure may beused to reduce overfitting in the model by preventing complexco-adaptations on the training data. ReLU and Dropout are knownmechanism the details of which are readily available in the art.Once the fully connected neural network layer 320 is generated and anydesired functions applied upon it, a probability distribution may becalculated over all the content available (e.g., all icons available forsuggestion) to predict the correct icons for the query. This may becalculated using the following equation:

p(y _(i) |Q)=softmax(h)  (3)

In the above equation (3), p(y_(i)|Q) may denote the probabilitydistribution and y_(i) may denote the probability of the ith icon. Inthis manner, icons that are most likely to be associated with the query(e.g., the text in the document) may be predicted as predicted classes330. These icons may be suggested to the user via a user interface.

To properly train the text-to-content model, a combination ofunsupervised and supervised learning models may be used. FIG. 4 depictsan example simplified architecture 400 for an unsupervised learningmodel used to pretrain text-to-content suggestion models. In oneimplementation, the unsupervised learning model is a deep neuralnetwork, in which the deep network is trained to have an embeddingslayer corresponding to at least one of words, or sentences. As will beunderstood, deep neural networks may be trained to obtain unstructuredtext embeddings. These embeddings may provide the basis for supervisedlearning. The embeddings layer may be learned from an unlabeled dataset.In an example, the dataset may be a dataset of unlabeled stored userdata obtained via the application over a period of time. Thus, thedataset may be a set of domain specific unlabeled data which has domainknowledge of the application. As discussed above, to ensure privacy,stored user data may not include all the words included in the originalinput text. For example, a filtering method may be used to filter outcertain words. Furthermore, not all words in user input can be loggedbecause of constrains on the size of the dictionary used in the trainingalgorithm. In an example, about 30% of words in a sentence may berandomly masked. Additionally, words in a sentence may be shuffled tochange their order and thus make it harder to infer the original userinput. Thus, the dataset may include an unordered set of words some ofwhich may be masked. As shown in FIG. 4, an example query of the inputdataset may include word 1 through word n, with n being the length ofthe query, and with some of the words being masked. One advantage ofusing an unlabeled dataset is that the vocabulary size can be increasedby using an external dataset (e.g., English Gigaword dataset).

The unlabeled dataset then may be used to derive the average poolinglayer 310 of the model architecture for the query. This may be done bycalculating a value for the average of word embeddings in the query. Thequery may be denoted as {circumflex over (Q)} and represented as{circumflex over (Q)}=(w₁, [mask], . . . , w_(n)) when w₂ is masked. Inthis case w₂ may be replaced with a special token. The query {circumflexover (Q)} may then be used to infer w₂ by first determining a wordembedding matrix denoted by W_(E). As discussed above, the wordembedding matrix may be initialized with one or more known pretrainedword embeddings such as GloVe, Word2vec, or fastText.

Once the word embedding matrix W_(E) has been initialized, therepresentation of the query {circumflex over (Q)}, which may be denotedby {circumflex over (q)}, and may be the average of word embeddings for{circumflex over (Q)} may be calculated as follows:

$\begin{matrix}{\overset{\hat{}}{q} = {\frac{1}{n}{\sum\limits_{i}{W_{E}{e\left( w_{i} \right)}}}}} & (4)\end{matrix}$

The average pooling layer 410 for the sentence(s) from which the queryoriginated may then be generated. Furthermore, once the average poolinglayer 410 is generated, a fully connected layer 420 may be developedbased on {circumflex over (q)}. As discussed above, the fully connectedlayer 420 may have an activation function such as a rectified linearunit (ReLU) activated upon it and a dropout mechanism may be applied toreduce overfitting in the model. Then a probability distribution may becalculated over all the words in the dataset to predict the unmaskedword(s) in the query. This may be calculated using the followingequation:

p(y _(i) |{circumflex over (Q)})=softmax(h)  (5)

In equation (5), p(y_(i)|Q) may denote the probability distribution andy_(i) may denote the probability of the ith word being the masked word.In this manner, the masked word may be predicted in as part of apredicted class 430. In this manner, the unsupervised learning model mayfunction similarly to an autoencoder.

In an implementation, the unsupervised training model may continuerunning to process all the data in the unlabeled dataset. The datasetmay include a significant number of queries. In an example the datasetmay include tens of thousands of queries and the unsupervised trainingmodel may require a few days to train. Once the dataset is processed viathe algorithm, an embedding layer may be generated which may be usedfurther as a pretrained embedding layer to train the text-to-contentmodels. The pretrained embedding layer may function as a dictionary ofembedding specifically tailored to data in the application from whichthe input dataset was derived. Once the unsupervised learning model 400is completed, the resulting pretrained embedding generated as part ofthe process may be used to train one or more text-to-content models. Forexample, the pretrained embedding layer may be used to train alltext-to-content models provided in a text-to-content service.

FIG. 5 is a flow diagram depicting an exemplary method 500 for providingunsupervised learning model to predict masked words in an unordereddataset. The method 500 may begin, at 505, and proceed to access adataset, at 510. As discussed above, the dataset may be an applicationspecific dataset based on user data received from the application andlogged in a dataset designed for use in by a training mechanism. Thisdatabase may be a large-scale dataset that includes unordered queriescontaining masked words. The size of the dataset may be determined bythe size constraints of the dictionary designed for the trainingalgorithm and may vary depending on the application. To train the model,method 500 may process all queries in the dataset.

After accessing the dataset to retrieve a query, method 500 may proceedto initialize the training model with one or more general pretrainedembeddings, at 515. The general pretrained embeddings may be industrystandard pretrained embeddings that use dictionary words as theirinputs. These pretrained embeddings may be different by the pretrainedembeddings generated by the unsupervised training model disclosed hereinin that the pretrained embeddings generated by the disclosedunsupervised training model are domain specific and trained withapplication specific data. Method 500 may utilize one or more pretrainedembeddings to initialize a word embedding matrix for the query.

Once the training model is initialized with one or more pretrainedembeddings, method 500 may proceed to generate an average pooling layerfor the sentence(s) from which the query originated, at 520, beforegenerating a fully connected layer, at 525. An activation function suchas ReLU may then be applied to the fully connected layer, at 530. Method500 may then proceed to apply a dropout mechanism to the fully connectedlayer, at 535, before the masked word can be predicted by the neuralnetwork, at 540. The steps of method 500 may be repeated for each queryin the dataset to generate a predicted class.

During this unsupervised learning process a pretrained embedding isgenerated. The pretrained embedding is an application specific embeddingthat can be used for the entire text-to-content service to improve thequality of text-to-content models and share domain-specific knowledgeacross text-to-content models. In one implementation, a few sets ofpretrained embedding layers each having a different dimension may begenerated by the unsupervised learning algorithm. For example, a firstembedding layer having vectors of 100 dimension may be generated. Thismay be useful for training algorithms that have a small size of trainingdata and are thus relatively simple. A second pretrained embedding layerhaving vectors of 500 dimensions may be generated for training morecomplex model. A third set of pretrained embedding layer having vectorsof 1000 dimensions may be created for training highly complex models.Each of the these embedding layers may have corresponding initializationweights which may be used in training downstream text-to-content modelsas discussed below.

FIG. 6 is a flow diagram depicting an example method 600 for training atext-to-content suggestion model based. The method 600 may begin, at605, and proceed to access a training dataset, at 610. The dataset usedat this stage may be a labeled dataset provided specifically fortraining a particular type of text-to-content suggestion model (e.g.,text-to-icon, text-to-images, or text-to-emoticon). As such the trainingperformed at this stage may be supervised learning. Depending on thetype of training required (e.g., initial training or retraining due tonew contents), the size of the dataset used may be relatively small andmay depend on the type of model being trained.

After accessing the dataset to access a query, method 600 may proceed toinitialize the training model with a pretrained embedding layergenerated by the unsupervised learning model, at 615. The pretrainedembedding layer most appropriate to the type of model being trained maybe selected at this stage. Method 600 may utilize the pretrainedembedding to initialize a word embedding matrix for the query.

Once the training model is initialized with the pretrained embeddings,method 600 may proceed to generate an average pooling layer for thesentence(s) from which the query originated, at 620, before applyinginitialization weights to the model, at 625. The initialization weightsmay be derived from the unsupervised learning model to initialize thetext-to-content model being trained. Method 600 may then proceed togenerate a fully connected layer, at 630. An activation function such asReLU may then be applied to the fully connected layer, at 635. Method600 may then proceed to apply a dropout mechanism to the fully connectedlayer, at 640, before the output predicted classes can be created, at540.

The steps of method 600 may be repeated for each query in the dataset togenerate a predicted class. In one implementation, random weights may beused between the fully connected layer and the output predicted class.The size of the predicted class may depend on the size of the contentsavailable in the application. For example, if the application includes800 icons that are available for the text-to-icons suggestion model, thesize of the class created for this model may be 800. The steps of themethod may be repeated to fine tune the model, each time using differentweights to achieve at a final model. In this manner, the pretrainedembedding layers generated by the unsupervised learning model can beused to train downstream tasks.

In one implementation, an engineering layer may be added to the finalmodel to ensure that the model functions properly in an onlineenvironment. This is because during the testing a model may functiondifferently than when in the real-world and an online environmentbecause the signal may be hiding a number of other models and the like.The engineering layer can guide the suggestions. In particular, withrespect to new content proportion, the engineering layer can tune theproportion of new contents presented as suggestions.

Other challenges in training text-to-content models may be presentedwhen new content is added to an application. For example, the newcontent may not include labels and the new content may be promoted withmuch less data than old content. In general, when dealing with newcontent, it may be difficult to control the proportion of new contentsuggested by the models. To address these issues, the training modelsmay utilize third party augmented datasets to bootstrap new contents.For example, Wikipedia and dictionary datasets may be used for thispurpose. Other mechanisms may also be used. In an example, the trainingmay include a dropoff mechanism which gradually removes old content ineach batch of training data. This may result in gradual increase of theratio of new content to old content in each batch. Another mechanism maybe penalizing the error in new content more. Yet, another method thatcan be used to address these issues is creating a new model for newcontent and merging the results of the new model with the old model.This may involve making the merge logic controllable. As discussedbefore, an engineering layer may also be added to control new contentoutput scores during online flight.

It should be noted that the models providing text-to-content suggestionsmay be hosted locally on the client (e.g., text-to-content engine) orremotely in the cloud (e.g., text-to-content service). In oneimplementation, some models are hosted locally, while others are storedin the cloud. This enables the client device to provide some suggestionseven when the client is not connected to a network. Once the clientconnects to the network, however, the application may be able to providebetter and more complete text-to-content suggestions.

Thus, methods and systems for generating an application-specificembedding for a text-to-content service is provided. Theapplication-specific embedding may be used to train text-to-contentmodels to improve the quality of the models, which may lack sufficientlabeled data, and to share domain-specific knowledge acrosstext-to-content models. The improved training method may utilize anunsupervised learning technique and open source pretrained wordembeddings to generate various sets of domain-specific pretrained wordembeddings for all text-to-content models in a text-to-content service.The domain-specific pretrained word embeddings may be shared amongdownstream text-to-content tasks through a united pretrained wordembedding, in order to bootstrap new text-to-content suggestions andminimize differences in suggestion quality among different models. As aresult of employing an unsupervised learning model first, far lesslabeled data may be needed to train each text-to-content model.Furthermore, the models generate better suggestions with the same amountof labeled data. This means the algorithms make efficient use ofunlabeled data, and the time required to bootstrap decent qualitytext-to-content suggestions models can be decreased significantly. Thiscan improve the user's overall experience, increase their efficiency,and assist in locating relevant contents more easily when needed.

FIG. 7 is a block diagram 700 illustrating an example softwarearchitecture 702, various portions of which may be used in conjunctionwith various hardware architectures herein described, which mayimplement any of the above-described features. FIG. 7 is a non-limitingexample of a software architecture and it will be appreciated that manyother architectures may be implemented to facilitate the functionalitydescribed herein. The software architecture 702 may execute on hardwaresuch as client devices, native application provider, web servers, serverclusters, external services, and other servers. A representativehardware layer 704 includes a processing unit 706 and associatedexecutable instructions 708. The executable instructions 708 representexecutable instructions of the software architecture 702, includingimplementation of the methods, modules and so forth described herein.

The hardware layer 704 also includes a memory/storage 710, which alsoincludes the executable instructions 708 and accompanying data. Thehardware layer 704 may also include other hardware modules 712.Instructions 708 held by processing unit 708 may be portions ofinstructions 708 held by the memory/storage 710.

The example software architecture 702 may be conceptualized as layers,each providing various functionality. For example, the softwarearchitecture 702 may include layers and components such as an operatingsystem (OS) 714, libraries 716, frameworks 718, applications 720, and apresentation layer 724. Operationally, the applications 720 and/or othercomponents within the layers may invoke API calls 724 to other layersand receive corresponding results 726. The layers illustrated arerepresentative in nature and other software architectures may includeadditional or different layers. For example, some mobile or specialpurpose operating systems may not provide the frameworks/middleware 718.

The OS 714 may manage hardware resources and provide common services.The OS 714 may include, for example, a kernel 728, services 730, anddrivers 732. The kernel 728 may act as an abstraction layer between thehardware layer 704 and other software layers. For example, the kernel728 may be responsible for memory management, processor management (forexample, scheduling), component management, networking, securitysettings, and so on. The services 730 may provide other common servicesfor the other software layers. The drivers 732 may be responsible forcontrolling or interfacing with the underlying hardware layer 704. Forinstance, the drivers 732 may include display drivers, camera drivers,memory/storage drivers, peripheral device drivers (for example, viaUniversal Serial Bus (USB)), network and/or wireless communicationdrivers, audio drivers, and so forth depending on the hardware and/orsoftware configuration.

The libraries 716 may provide a common infrastructure that may be usedby the applications 720 and/or other components and/or layers. Thelibraries 716 typically provide functionality for use by other softwaremodules to perform tasks, rather than rather than interacting directlywith the OS 714. The libraries 716 may include system libraries 734 (forexample, C standard library) that may provide functions such as memoryallocation, string manipulation, file operations. In addition, thelibraries 716 may include API libraries 736 such as media libraries (forexample, supporting presentation and manipulation of image, sound,and/or video data formats), graphics libraries (for example, an OpenGLlibrary for rendering 2D and 3D graphics on a display), databaselibraries (for example, SQLite or other relational database functions),and web libraries (for example, WebKit that may provide web browsingfunctionality). The libraries 716 may also include a wide variety ofother libraries 738 to provide many functions for applications 720 andother software modules.

The frameworks 718 (also sometimes referred to as middleware) provide ahigher-level common infrastructure that may be used by the applications720 and/or other software modules. For example, the frameworks 718 mayprovide various GUI functions, high-level resource management, orhigh-level location services. The frameworks 718 may provide a broadspectrum of other APIs for applications 720 and/or other softwaremodules.

The applications 720 include built-in applications 720 and/orthird-party applications 722. Examples of built-in applications 720 mayinclude, but are not limited to, a contacts application, a browserapplication, a location application, a media application, a messagingapplication, and/or a game application. Third-party applications 722 mayinclude any applications developed by an entity other than the vendor ofthe particular system. The applications 720 may use functions availablevia OS 714, libraries 716, frameworks 718, and presentation layer 724 tocreate user interfaces to interact with users.

Some software architectures use virtual machines, as illustrated by avirtual machine 728. The virtual machine 728 provides an executionenvironment where applications/modules can execute as if they wereexecuting on a hardware machine (such as the machine 800 of FIG. 8, forexample). The virtual machine 728 may be hosted by a host OS (forexample, OS 714) or hypervisor, and may have a virtual machine monitor726 which manages operation of the virtual machine 728 andinteroperation with the host operating system. A software architecture,which may be different from software architecture 702 outside of thevirtual machine, executes within the virtual machine 728 such as an OS750, libraries 752, frameworks 754, applications 756, and/or apresentation layer 758.

FIG. 8 is a block diagram illustrating components of an example machine800 configured to read instructions from a machine-readable medium (forexample, a machine-readable storage medium) and perform any of thefeatures described herein. The example machine 800 is in a form of acomputer system, within which instructions 816 (for example, in the formof software components) for causing the machine 800 to perform any ofthe features described herein may be executed. As such, the instructions816 may be used to implement methods or components described herein. Theinstructions 816 cause unprogrammed and/or unconfigured machine 800 tooperate as a particular machine configured to carry out the describedfeatures. The machine 800 may be configured to operate as a standalonedevice or may be coupled (for example, networked) to other machines. Ina networked deployment, the machine 800 may operate in the capacity of aserver machine or a client machine in a server-client networkenvironment, or as a node in a peer-to-peer or distributed networkenvironment. Machine 800 may be embodied as, for example, a servercomputer, a client computer, a personal computer (PC), a tabletcomputer, a laptop computer, a netbook, a set-top box (STB), a gamingand/or entertainment system, a smart phone, a mobile device, a wearabledevice (for example, a smart watch), and an Internet of Things (IoT)device. Further, although only a single machine 800 is illustrated, theterm “machine” include a collection of machines that individually orjointly execute the instructions 816.

The machine 800 may include processors 810, memory 830, and I/Ocomponents 850, which may be communicatively coupled via, for example, abus 802. The bus 802 may include multiple buses coupling variouselements of machine 800 via various bus technologies and protocols. Inan example, the processors 810 (including, for example, a centralprocessing unit (CPU), a graphics processing unit (GPU), a digitalsignal processor (DSP), an ASIC, or a suitable combination thereof) mayinclude one or more processors 812 a to 812 n that may execute theinstructions 816 and process data. In some examples, one or moreprocessors 810 may execute instructions provided or identified by one ormore other processors 810. The term “processor” includes a multi-coreprocessor including cores that may execute instructionscontemporaneously. Although FIG. 8 shows multiple processors, themachine 800 may include a single processor with a single core, a singleprocessor with multiple cores (for example, a multi-core processor),multiple processors each with a single core, multiple processors eachwith multiple cores, or any combination thereof. In some examples, themachine 800 may include multiple processors distributed among multiplemachines.

The memory/storage 830 may include a main memory 832, a static memory834, or other memory, and a storage unit 836, both accessible to theprocessors 810 such as via the bus 802. The storage unit 836 and memory832, 834 store instructions 816 embodying any one or more of thefunctions described herein. The memory/storage 830 may also storetemporary, intermediate, and/or long-term data for processors 810. Theinstructions 916 may also reside, completely or partially, within thememory 832, 834, within the storage unit 836, within at least one of theprocessors 810 (for example, within a command buffer or cache memory),within memory at least one of I/O components 850, or any suitablecombination thereof, during execution thereof. Accordingly, the memory832, 834, the storage unit 836, memory in processors 810, and memory inI/O components 850 are examples of machine-readable media.

As used herein, “machine-readable medium” refers to a device able totemporarily or permanently store instructions and data that causemachine 800 to operate in a specific fashion. The term “machine-readablemedium,” as used herein, does not encompass transitory electrical orelectromagnetic signals per se (such as on a carrier wave propagatingthrough a medium); the term “machine-readable medium” may therefore beconsidered tangible and non-transitory. Non-limiting examples of anon-transitory, tangible machine-readable medium may include, but arenot limited to, nonvolatile memory (such as flash memory or read-onlymemory (ROM)), volatile memory (such as a static random-access memory(RAM) or a dynamic RAM), buffer memory, cache memory, optical storagemedia, magnetic storage media and devices, network-accessible or cloudstorage, other types of storage, and/or any suitable combinationthereof. The term “machine-readable medium” applies to a single medium,or combination of multiple media, used to store instructions (forexample, instructions 816) for execution by a machine 800 such that theinstructions, when executed by one or more processors 810 of the machine800, cause the machine 800 to perform and one or more of the featuresdescribed herein. Accordingly, a “machine-readable medium” may refer toa single storage device, as well as “cloud-based” storage systems orstorage networks that include multiple storage apparatus or devices.

The I/O components 850 may include a wide variety of hardware componentsadapted to receive input, provide output, produce output, transmitinformation, exchange information, capture measurements, and so on. Thespecific I/O components 850 included in a particular machine will dependon the type and/or function of the machine. For example, mobile devicessuch as mobile phones may include a touch input device, whereas aheadless server or IoT device may not include such a touch input device.The particular examples of I/O components illustrated in FIG. 8 are inno way limiting, and other types of components may be included inmachine 800. The grouping of I/O components 850 are merely forsimplifying this discussion, and the grouping is in no way limiting. Invarious examples, the I/O components 850 may include user outputcomponents 852 and user input components 854. User output components 852may include, for example, display components for displaying information(for example, a liquid crystal display (LCD) or a projector), acousticcomponents (for example, speakers), haptic components (for example, avibratory motor or force-feedback device), and/or other signalgenerators. User input components 854 may include, for example,alphanumeric input components (for example, a keyboard or a touchscreen), pointing components (for example, a mouse device, a touchpad,or another pointing instrument), and/or tactile input components (forexample, a physical button or a touch screen that provides locationand/or force of touches or touch gestures) configured for receivingvarious user inputs, such as user commands and/or selections.

In some examples, the I/O components 850 may include biometriccomponents 856 and/or position components 862, among a wide array ofother environmental sensor components. The biometric components 856 mayinclude, for example, components to detect body expressions (forexample, facial expressions, vocal expressions, hand or body gestures,or eye tracking), measure biosignals (for example, heart rate or brainwaves), and identify a person (for example, via voice-, retina-, and/orfacial-based identification). The position components 862 may include,for example, location sensors (for example, a Global Position System(GPS) receiver), altitude sensors (for example, an air pressure sensorfrom which altitude may be derived), and/or orientation sensors (forexample, magnetometers).

The I/O components 850 may include communication components 864,implementing a wide variety of technologies operable to couple themachine 800 to network(s) 970 and/or device(s) 880 via respectivecommunicative couplings 872 and 882. The communication components 964may include one or more network interface components or other suitabledevices to interface with the network(s) 870. The communicationcomponents 864 may include, for example, components adapted to providewired communication, wireless communication, cellular communication,Near Field Communication (NFC), Bluetooth communication, Wi-Fi, and/orcommunication via other modalities. The device(s) 880 may include othermachines or various peripheral devices (for example, coupled via USB).

In some examples, the communication components 864 may detectidentifiers or include components adapted to detect identifiers. Forexample, the communication components 864 may include Radio FrequencyIdentification (RFID) tag readers, NFC detectors, optical sensors (forexample, one- or multi-dimensional bar codes, or other optical codes),and/or acoustic detectors (for example, microphones to identify taggedaudio signals). In some examples, location information may be determinedbased on information from the communication components 862, such as, butnot limited to, geo-location via Internet Protocol (IP) address,location via Wi-Fi, cellular, NFC, Bluetooth, or other wireless stationidentification and/or signal triangulation.

While various embodiments have been described, the description isintended to be exemplary, rather than limiting, and it is understoodthat many more embodiments and implementations are possible that arewithin the scope of the embodiments. Although many possible combinationsof features are shown in the accompanying figures and discussed in thisdetailed description, many other combinations of the disclosed featuresare possible. Any feature of any embodiment may be used in combinationwith or substituted for any other feature or element in any otherembodiment unless specifically restricted. Therefore, it will beunderstood that any of the features shown and/or discussed in thepresent disclosure may be implemented together in any suitablecombination. Accordingly, the embodiments are not to be restrictedexcept in light of the attached claims and their equivalents. Also,various modifications and changes may be made within the scope of theattached claims.

Generally, functions described herein (for example, the featuresillustrated in FIGS. 1-6) can be implemented using software, firmware,hardware (for example, fixed logic, finite state machines, and/or othercircuits), or a combination of these implementations. In the case of asoftware implementation, program code performs specified tasks whenexecuted on a processor (for example, a CPU or CPUs). The program codecan be stored in one or more machine-readable memory devices. Thefeatures of the techniques described herein are system-independent,meaning that the techniques may be implemented on a variety of computingsystems having a variety of processors. For example, implementations mayinclude an entity (for example, software) that causes hardware toperform operations, e.g., processors functional blocks, and so on. Forexample, a hardware device may include a machine-readable medium thatmay be configured to maintain instructions that cause the hardwaredevice, including an operating system executed thereon and associatedhardware, to perform operations. Thus, the instructions may function toconfigure an operating system and associated hardware to perform theoperations and thereby configure or otherwise adapt a hardware device toperform functions described above. The instructions may be provided bythe machine-readable medium through a variety of differentconfigurations to hardware elements that execute the instructions.

While the foregoing has described what are considered to be the bestmode and/or other examples, it is understood that various modificationsmay be made therein and that the subject matter disclosed herein may beimplemented in various forms and examples, and that the teachings may beapplied in numerous applications, only some of which have been describedherein. It is intended by the following claims to claim any and allapplications, modifications and variations that fall within the truescope of the present teachings.

Unless otherwise stated, all measurements, values, ratings, positions,magnitudes, sizes, and other specifications that are set forth in thisspecification, including in the claims that follow, are approximate, notexact. They are intended to have a reasonable range that is consistentwith the functions to which they relate and with what is customary inthe art to which they pertain.

The scope of protection is limited solely by the claims that now follow.That scope is intended and should be interpreted to be as broad as isconsistent with the ordinary meaning of the language that is used in theclaims when interpreted in light of this specification and theprosecution history that follows, and to encompass all structural andfunctional equivalents. Notwithstanding, none of the claims are intendedto embrace subject matter that fails to satisfy the requirement ofSections 101, 102, or 103 of the Patent Act, nor should they beinterpreted in such a way. Any unintended embracement of such subjectmatter is hereby disclaimed.

Except as stated immediately above, nothing that has been stated orillustrated is intended or should be interpreted to cause a dedicationof any component, step, feature, object, benefit, advantage, orequivalent to the public, regardless of whether it is or is not recitedin the claims.

It will be understood that the terms and expressions used herein havethe ordinary meaning as is accorded to such terms and expressions withrespect to their corresponding respective areas of inquiry and studyexcept where specific meanings have otherwise been set forth herein.

Relational terms such as first and second and the like may be usedsolely to distinguish one entity or action from another withoutnecessarily requiring or implying any actual such relationship or orderbetween such entities or actions. The terms “comprises,” “comprising,”and any other variation thereof, are intended to cover a non-exclusiveinclusion, such that a process, method, article, or apparatus thatcomprises a list of elements does not include only those elements butmay include other elements not expressly listed or inherent to suchprocess, method, article, or apparatus. An element preceded by “a” or“an” does not, without further constraints, preclude the existence ofadditional identical elements in the process, method, article, orapparatus that comprises the element.

The Abstract of the Disclosure is provided to allow the reader toquickly identify the nature of the technical disclosure. It is submittedwith the understanding that it will not be used to interpret or limitthe scope or meaning of the claims. In addition, in the foregoingDetailed Description, it can be seen that various features are groupedtogether in various examples for the purpose of streamlining thedisclosure. This method of disclosure is not to be interpreted asreflecting an intention that any claim requires more features than theclaim expressly recites. Rather, as the following claims reflect,inventive subject matter lies in less than all features of a singledisclosed example. Thus, the following claims are hereby incorporatedinto the Detailed Description, with each claim standing on its own as aseparately claimed subject matter.

1. A data processing system comprising: a processor; and a memory incommunication with the processor, the memory comprising executableinstructions that, when executed by the processor, cause the dataprocessing system to perform functions of: accessing a datasetcontaining unlabeled training data collected from an application, theunlabeled training data including at least one of an unordered set ofwords or data that is partially masked; applying an unsupervisedmachine-learning (ML) model to the dataset to generate a pretrainedembedding; and applying a supervised ML model to a labeled dataset totrain a text-to-content suggestion ML model utilized by the application;wherein the supervised ML model utilizes the pretrained embeddinggenerated by the supervised ML model to train the text-to-contentsuggestion ML model.
 2. The data processing system of claim 1, whereineach of the unsupervised ML and the supervised ML models includes anaverage pooling layer and a fully connected layer.
 3. The dataprocessing system of claim 1, wherein the instructions further cause theprocessor to apply initialization weights to the supervised ML models,the initialization weights being obtained by the unsupervised ML model.4. The data processing system of claim 1, wherein the instructionsfurther cause the processor to apply an engineering layer to the trainedtext-to-content suggestion ML model to control a proportion of newcontents suggested.
 5. The data processing system of claim 2, whereinthe unlabeled training data is used to derive the average pooling layer.6. The data processing system of claim 1, wherein: the unordered set ofwords includes at least one masked word; and the unsupervised ML modelgenerates a predicted word corresponding to the masked word.
 7. The dataprocessing system of claim 1, wherein the unsupervised ML modelgenerates a plurality of pretrained embedding layers, each pretrainedembedding layer having a different vector dimension for use with adifferent text-to-content suggestion model.
 8. A method for training atext-to-content suggestion ML model, the method comprising: accessing adataset containing unlabeled training data collected from anapplication, the unlabeled training data including at least one of anunordered set of words or data that is partially masked; applying anunsupervised machine-learning (ML) model to the dataset to generate apretrained embedding; and applying a supervised ML model to a labeleddataset to train the text-to-content suggestion ML model utilized by theapplication; wherein the supervised ML model utilizes the pretrainedembedding generated by the supervised ML model to train thetext-to-content suggestion ML model.
 9. The method of claim 8, whereineach of the unsupervised ML and the supervised ML models includes anaverage pooling layer and a fully connected layer.
 10. The method ofclaim 8, further comprising applying initialization weights to thesupervised ML models, the initialization weights being obtained by theunsupervised ML model.
 11. The method of claim 8, further comprisingapplying an engineering layer to the trained text-to-content suggestionML model to control a proportion of new contents suggested.
 12. Themethod of claim 9, wherein the unlabeled training data is used to derivethe average pooling layer.
 13. The method of claim 8, wherein theunsupervised ML model generates a plurality of pretrained embeddinglayers, each pretrained embedding layer having a different vectordimension for use with a different text-to-content suggestion model. 14.A non-transitory computer readable medium on which are storedinstructions that, when executed, cause a programmable device to: accessa dataset containing unlabeled training data collected from anapplication, the unlabeled training including at least one of anunordered set of words or data that is partially masked; apply anunsupervised machine-learning (ML) model to the dataset to generate apretrained embedding; and apply a supervised ML model to a labeleddataset to train a text-to-content suggestion ML model utilized by theapplication; wherein the supervised ML model utilizes the pretrainedembedding generated by the supervised ML model to train thetext-to-content suggestion ML model.
 15. The non-transitory computerreadable medium of claim 14, wherein each of the unsupervised ML and thesupervised ML models includes an average pooling layer and a fullyconnected layer.
 16. The non-transitory computer readable medium ofclaim 14, wherein the instructions further cause the programmable deviceto apply initialization weights to the supervised ML models, theinitialization weights being obtained by the unsupervised ML model. 17.The non-transitory computer readable medium of claim 14, wherein theinstructions further cause the programmable device to apply anengineering layer to the trained text-to-content suggestion ML model tocontrol a proportion of new contents suggested.
 18. The non-transitorycomputer readable medium of claim 15, wherein the unlabeled trainingdata is used to derive the average pooling layer.
 19. The non-transitorycomputer readable medium of claim 14, wherein: the unordered set ofwords includes at least one masked word; and the unsupervised ML modelgenerates a predicted word corresponding to the masked word.
 20. Thenon-transitory computer readable medium of claim 14, wherein theunsupervised ML model generates a plurality of pretrained embeddinglayers, each pretrained embedding layer having a different vectordimension for use with a different text-to-content suggestion model.